package com.jsmtr.rms.service;

import java.util.List;
import java.util.Map;

import com.jsmtr.rms.entity.*;


public interface IDoSZService {


    /**
     * 获得社招人员简历分页数据
     *
     * @param page    当前页
     * @param perpage 每页显示数
     * @param resume  简历实体
     * @param param   条件
     * @return Map
     */
    Map<String, Object> getResumes(int page, int perpage, DUserResume resume, Map<String, Object> param) throws Exception;

    /**
     * 获得社招人员简历
     *
     * @param ids 简历ID集合
     * @return List<DUserResume>
     */
    List<DUserResume> getResumes(String[] ids) throws Exception;

    /**
     * 获得当前招聘流程
     *
     * @param fid 当前流程ID
     * @return 招聘流程
     * @throws Exception
     */
    ProjectInfoFlow getCurrentFlow(String fid) throws Exception;

    /**
     * 获得当前招聘流程
     *
     * @param pid      招聘方案ID
     * @param deptcode 责任部门编码
     * @param fid      当前流程ID
     * @return 招聘流程
     * @throws Exception
     */
    ProjectInfoFlow getCurrentFlow(String pid, String deptcode, String fid) throws Exception;

    /**
     * 获得下一招聘流程
     *
     * @param pid      招聘方案ID
     * @param deptcode 责任部门编码
     * @param fid      当前流程ID
     * @return 招聘流程
     * @throws Exception
     */
    ProjectInfoFlow getNextFlow(String pid, String deptcode, String fid) throws Exception;

    /*********************笔试********************/

    /**
     * 社会招聘应聘者笔试分页信息
     *
     * @param page    当前页
     * @param perpage 每页显示数
     * @param user    DUserResume
     * @param param   条件map
     * @return Map
     */
    Map<String, Object> getBSUsers(int page, int perpage, DUserResume user, Map<String, Object> param) throws Exception;

    /*********************面试********************/

    /**
     * 社会招聘应聘者面试分页信息
     *
     * @param page    当前页
     * @param perpage 每页显示数
     * @param user    DUserResume
     * @param param   条件map
     * @return Map
     */
    Map<String, Object> getMSUsers(int page, int perpage, DUserResume user, Map<String, Object> param) throws Exception;

    /*********************素质测评********************/

    /**
     * 社会招聘应聘者素质测评分页信息
     *
     * @param page    当前页
     * @param perpage 每页显示数
     * @param user    DUserResume
     * @param param   条件map
     * @return Map
     */
    Map<String, Object> getSSUsers(int page, int perpage, DUserResume user, Map<String, Object> param) throws Exception;
    /**
     * 社招简历信息
     *
     * @param id 简历ID
     * @return DUserResume
     */
    DUserResume getResume(String id) throws Exception;

    /*********************实作********************/

    /**
     * 获得某实作计划中的应聘者
     *
     * @param fid 招聘流程ID
     * @param uid 应聘者ID
     * @return DoOperationUser
     */
    DoOperationUser getSZUser(String fid, String uid) throws Exception;

    /**
     * 获得某实作计划中的应聘者
     *
     * @param id ID
     * @return DoOperationUser
     */
    DoOperationUser getSZUser(String id) throws Exception;

    /**
     * 获得某实作计划中的应聘者
     *
     * @param fid  招聘流程ID
     * @param uids 应聘者ID
     * @return List<DoOperationUser>
     */
    List<DoOperationUser> getSZUsers(String fid, String[] uids) throws Exception;


    /**
     * 社会招聘应聘者实作分页信息
     *
     * @param page    当前页
     * @param perpage 每页显示数
     * @param user    DUserResume
     * @param param   条件map
     * @return Map
     */
    Map<String, Object> getSZUsers(int page, int perpage, DUserResume user, Map<String, Object> param) throws Exception;

    /**
     * 社会招聘应聘者实作计划信息
     *
     * @param fid  招聘流程ID
     * @param uids 应聘者ID集合
     * @return List<Object   [   ]>
     */
    List<Object[]> getSZPlan(String fid, String[] uids) throws Exception;

    /**
     * 社会招聘应聘者实作计划信息
     *
     * @param fid  招聘流程ID
     * @param uids 应聘者ID集合
     * @return List<Object   [   ]>
     */
    List<Object[]> getSZMsgUsers(String fid, String[] uids) throws Exception;

    /**
     * 社会招聘实作结果
     *
     * @param id 实作安排ID
     * @return Object
     */
    List<Object[]> getSZResult(String[] id) throws Exception;

    /*********************报到********************/
    /**
     * 获得报到人数
     *
     * @param pid 招聘方案ID
     * @return List<Object   [   ]> Object[0]：人数，Object[1]：PROJECT_INFO_JOB 的ID
     */
    List<Object[]> getBdUserCount(String pid) throws Exception;

     Map<String, Object> getResumesMap(int page, int perpage, DUserResume resume, Map<String, Object> param) throws Exception;


    /**
     * 获得招聘方案
     *
     * @param id 招聘方案ID
     * @return ProjectInfo
     * @throws Exception
     */
    ProjectInfo getProject(String id) throws Exception;

}
